package com.whmskj.xjlhsc.service.dto;

import lombok.Data;

import java.math.BigDecimal;
import java.math.RoundingMode;

/**
 * @Author: Sakura
 * @Date: 2025/8/15 11:36
 * @Version: v1.0.0
 * @Description: TODO
 **/
@Data
// 辅助类：用于计算每日效率
public class EfficiencyData {
    // 累计理论产量
    private BigDecimal totalTheoretical = BigDecimal.ZERO;

    // 累计实际产量
    private BigDecimal totalActual = BigDecimal.ZERO;

    /**
     * 添加理论产量
     * @param value 理论产量值
     */
    public void addTheoretical(BigDecimal value) {
        totalTheoretical = totalTheoretical.add(value);
    }

    /**
     * 添加实际产量
     * @param value 实际产量值
     */
    public void addActual(BigDecimal value) {
        totalActual = totalActual.add(value);
    }

    /**
     * 计算并返回效率百分比
     * @return 效率值 (0.0 - 100.0)
     */
    public double calculateEfficiency() {
        // 处理除零情况
        if (totalTheoretical.compareTo(BigDecimal.ZERO) == 0) {
            return 0.0;
        }

        // 计算效率百分比
        BigDecimal efficiency = totalActual
                .divide(totalTheoretical, 4, RoundingMode.HALF_UP) // 保留4位小数
                .multiply(new BigDecimal(100)); // 转换为百分比

        return efficiency.doubleValue();
    }
}
